package com.hghivln.service;

import com.hghivln.pojo.domain.Menu;
import com.baomidou.mybatisplus.extension.service.IService;
import com.hghivln.pojo.domain.SimpleUser;
import com.hghivln.pojo.dto.MenuDto;
import com.hghivln.pojo.vo.AjaxResult;

import java.util.List;

public interface MenuService {
    /**
     * 查询菜单树
     * 如查用户是超级管理员，那么查询所以菜单和权限
     * 如果用户是普通用户，那么根据用户ID关联角色和权限
     * @param isAdmin 是否是超级管理员
     * @param simpleUser 如果isAdmin=true  simpleUser可以为空
     */
    List<Menu> selectMenuTree(Boolean isAdmin, SimpleUser simpleUser);

    /**
     * 查询菜单数据
     */
    AjaxResult listAllMenus(MenuDto menuDto);

    /**
     * 添加菜单
     */
    AjaxResult addMenu(MenuDto menuDto);

    /**
     * 修改菜单
     */
    AjaxResult updateMenu(MenuDto menuDto);

    /**
     * 删除菜单
     */
    AjaxResult deleteMenuById(Long id);

    /**
     * 判断是否有子菜单
     */
    boolean hasChildByMenuId(Long menuId);

    /**
     * 查询一个
     */
    AjaxResult getMenuById(Long id);

    /**
     * 根据角色ID查询当前角色ID拥有的权限菜单
     */
    AjaxResult getMenuIdsByRoleId(Long roleId);
}
